The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
When a client device, such as a PC, prints to a printing device, such as a printer, a print subsystem on the client device processes print data generated by an application program on the client device, converts the print data into a format supported by the printing device, and sends the converted print data to the printing device, which then prints the print data. For example, a user creates an electronic document using a word processing application on a PC. The user then selects a print option in the word processing application to request that the electronic document be printed to a particular printer. The print subsystem on the PC processes this request by processing the print data for the electronic document, converting the print data into a format supported by the particular printer, and sends the converted print data to the particular printer. Generally, converted print data is sent to a printing device as part of a print job that is recognized by the printing device.
To perform these steps, which result in the printing device processing the submitted print job, the print subsystem on the client device usually makes use of a printer driver, which includes processes that process print data generated by an application program and convert the print data into a format supported by the printing device. Conventionally, printer drivers are specific to each printing device. That is, each printer driver converts print data into a format supported by a particular printing device. Therefore, in order for a client device to print to a particular printing device, the client device must have installed on it the printer driver for the particular printing device.
Flow diagram 100 in FIG. 1 illustrates one approach for utilizing a printer driver to print to a particular printing device. In step 102, a manufacturer-provided printer driver is installed on a client device. The installation is usually performed by a user of the client device. The printer driver includes print settings data and a default print ticket for the particular printing device. Print settings data contains information about the print settings that are supported by the particular printing device, the available print setting values for the print settings, and the default print setting values for the print settings. For example, a print setting supported by the particular printing device may be the type of printing, for which the available print setting values may be “BW” (i.e. black-and-white printing) and “COLOR” (i.e. color printing), where “BW” is the default print settings value. A default print ticket is a print job ticket that is in a format that is supported by the particular printer and that also indicates default setting values for the print settings supported by the particular printing device. Based on the print settings data, a user interface is generated (step 104), where the user may select desired print setting values for a print job. The user selections are captured and saved as print settings selections data (step 106). The print settings selections data and the default print ticket are both used in generating a print job ticket for the print job (step 108). The generated print job ticket is in the format supported by the particular printing device and also incorporates the print settings value selections received from the user. The print job ticket is submitted to the printing device for processing and printing (step 110). Print data for the print job, which is in a format that is supported by the particular printing device, is generated from data output by an application on the client device. Print data may be submitted along with the print job ticket as part of a same print job that is to be processed by the printing device (not depicted in flow diagram 100).
When a printing device is updated with a new feature that is reflected in a new print setting, or when a new printing device becomes available for printing to the client device, however, new or updated printer drivers must be installed on the client device in order for the client device to print to the new or updated printing device. Flow diagram 200 in FIG. 2 illustrates a series of steps that are typically performed to enable a client device to print to a new or updated printing device. First, the manufacturer of the new or updated printing device creates or updates the printer driver for the printing device by creating or updating the print settings data and the default print ticket for the printer driver (step 202). In the case where the printer driver is updated, the print settings data and the default print ticket are updated to reflect the new feature(s) on the printing device. Next, the manufacturer releases the new or updated printer driver (step 204), which may include storing the printer driver on removable storage media (e.g., CD-ROM, DVD-ROM, etc.) and delivering the storage media to the user (e.g., sending a CD-ROM through the mail to the user's postal address) or making the printer driver available for download on the manufacturer's web site. Once the user has obtained the new or updated printer driver, he or she installs the new or updated printer driver (including the new or updated print settings data and default print ticket) on the operation system of the client device (step 208). If the user is not installing a new printer driver, but is updating an old printer driver, he or she may also need to remove the old printer driver from the client device's operating system (step 206). Finally, after the installation of the new or updated printer driver, the new or updated printer driver, including the new or updated print settings data and default print ticket, is available for use for generating user interfaces and print job tickets that reflect the new printer or new feature (step 210).
The approach just described is inefficient and tedious, requiring the manufacturer to update the printer driver and to make it available to the user and requiring the user to obtain the updated printer driver and to install the updated printer driver on the client device.
Based on the foregoing, there is a need for an approach for efficiently installing new printer drivers and updating existing printer drivers on client devices.